#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <lib.h>

#include "libacl.h"

void usage() {
    printf("Uso: acl_clr <archivo>\n");
    printf("  <archivo> es el archivo cuya ACL se elimina\n");
}


int main(argc,argv)
int argc;
char**  argv;
{
    int r;

    if (argc < 2) {
        printf("Error: faltan argumentos!\n");
        usage();
        return MISSING_ARG;
    }
    
    if (strlen(argv[1]) > PATH_MAX) {
        printf("Error: la ruta al archivo es demasiado larga!\n");
        return BAD_PATH;
    }

    r = aclset(argv[1], 0);
   
    /* Chequeo de errores */
    if (r == INODO_SIN_ACL) {
        printf("Error: el archivo no tiene ACL!\n");
        return r;
    }

    if (r == ERR_PIPE) {
        printf("Error: los pipes no soportan ACL!\n");
        return r;
    }

    if (r == ERR_PRIV) {
        printf("Error: permiso denegado!\n");
        return r;
    }

    if (r == ERR_INODO) {
        printf("Error: no se pudo acceder al archivo!\n");
        return r;
    }

    if (r == ERR_INODO_RO) {
        printf("Error: el archivo es de solo lectura!\n");
        return r;
    }
    
    if (r == ERR_SYS_COPY) {
        printf("Error: se produjo un error al copiar datos!\n");
        return r;
    }

    if (r != ACL_OK) {
        printf("Error: se produjo un error al intentar borrar el ACL!\n");
        return r;
    }

    return r;
}

